﻿ using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;


using Data;

namespace Business
{


    public class Utilizador
    {
        private int idUtilizador;
        private String username;
        private String nome;
        private String password;
        private String email;
        private String codPostal;
        private String rua;
        private String localidade;
        private int status;
        private DataUtilizador dataLayer;


        public Utilizador()
        {
            this.dataLayer = new DataUtilizador();
        }

        public Utilizador(String username, String nome, String password, String email, String rua, String codPostal)
        {
            this.idUtilizador = -1;
            this.username = username;
            this.nome = nome;
            this.password = password;
            this.email = email;
            this.codPostal = codPostal;
            this.localidade = "";
            this.status = -1;
            this.rua = rua;
            this.dataLayer = new DataUtilizador();
        }

        public Utilizador(String username, String nome, String password, String email, String rua, String codPostal, String localidade)
        {
            this.idUtilizador = -1;
            this.username = username;
            this.nome = nome;
            this.password = password;
            this.email = email;
            this.codPostal = codPostal;
            this.localidade = localidade;
            this.status = -1;
            this.rua = rua;
            this.dataLayer = new DataUtilizador();
        }

        public Utilizador(int userID, String username, String nome, String password, String email, String rua, String codPostal, String localidade)
        {
            this.idUtilizador = userID;
            this.username = username;
            this.nome = nome;
            this.password = password;
            this.email = email;
            this.codPostal = codPostal;
            this.localidade = localidade;
            this.status = -1;
            this.rua = rua;
            this.dataLayer = new DataUtilizador();
        }


        public Utilizador(Utilizador user)
        {
            this.idUtilizador = user.getIDUtilizador();
            this.username = user.getUsername();
            this.nome = user.getNome();
            this.password = user.getPassword();
            this.email = user.getEmail();
            this.codPostal = user.getCodPostal();
            this.localidade = user.getLocalidade();
            this.rua = user.getRua();
            this.status = user.getStatus();
            this.dataLayer = user.getDataLayer();
        }

        public int getIDUtilizador() { return this.idUtilizador; }
        public String getUsername() { return this.username; }
        public String getNome() { return this.nome; }
        public String getPassword() { return this.password; }
        public String getEmail() { return this.email; }
        public String getCodPostal() { return this.codPostal; }
        public String getLocalidade() { return this.localidade; }
        public int getStatus() { return this.status; }
        public String getRua() { return this.rua; }

        public DataUtilizador getDataLayer() { return this.dataLayer; }

        public void setIDUtilizador(int idUtilizador) { this.idUtilizador = idUtilizador; }
        public void setUsername(String username) { this.username = username; }
        public void setNome(String nome) { this.nome = nome; }
        public void setPassword(String password) { this.password = password; }
        public void setEmail(String email) { this.email = email; }
        public void setCodPostal(String codPostal) { this.codPostal = codPostal; }
        public void setLocalidade(String localidade) { this.localidade = localidade; }
        public void setStatus(int status) { this.status = status; }
        public void setRua(String rua) { this.rua = rua; }

        public int insertUtilizador()
        {
            int val = dataLayer.insertUtilizador(this);
            this.idUtilizador = val;
            return val;
        }

        public Utilizador getUtilizadorByID(int utilizadorID)
        {
            return dataLayer.getUtilizadorByID(utilizadorID);
        }

        public bool setEstadoUtilizador(int utilizadorID, int novoEstado)
        {
            return dataLayer.setEstadoUtilizador(utilizadorID, novoEstado);
        }

        public bool updateUtilizador()
        {
            return dataLayer.updateUtilizador(this);
        }

        public Utilizador validateLogin(String username, String password)
        {
            Utilizador novo = dataLayer.validateLogin(username, password);
            return novo;
        }
    }

}